﻿Imports System.Windows.Forms
Imports DNP.GestionComercial.BE
Imports DNP.GestionComercial.BL
Imports DNP.GestionComercial.Util
Imports DNP.GestionComercial.FormBase
Public Class frmMantProductos

    Inherits frmFormBase

#Region "declaracion de variables"
    'Dim _strAccion As String = ""
    'Const _Update As String = "UPDATE"
    'Const _Insert As String = "INSERT"
    Dim oMsg As New sisMensaje
    Dim vProductoCompuesto As New ProductoCompuestoBE

    Dim vlstProductoCompuesto As New List(Of ProductoCompuestoBE)
#End Region
#Region "Inicio"
    Public Sub New()

        ' Llamada necesaria para el diseñador.
        InitializeComponent()
        lblTitulo.Text = "Mantenimiento de Productos"
        Me.tbpLista.Text = "Lista de Productos"
        inicializarcontroles()

        Listar()
        'LlenaDetalle(0)

        ' Agregue cualquier inicialización después de la llamada a InitializeComponent().

    End Sub

    Private Sub inicializarcontroles()


        Dim obeRespuesta As New RespuestaBE
        Dim lstParametrica As New List(Of ParametricaBE)
        Dim lstlinea As New List(Of LineaProductoBE)
        Dim lstUnidades As New List(Of UnidadesBE)
        Dim lstMarcas As New List(Of MarcaBE)
        Dim lstsublinea As New List(Of LineaProductoBE)

        Dim oblParametrica As New ParametricaBL
        Dim obllinea As New LineaProductoBL
        Dim oblUnidades As New UnidadesBL
        Dim oblMarca As New MarcaBL
        TxtCodigo.Enabled = False
        gbxEntidad.Visible = True
        txtEntidad.Visible = True
        txtEntidad.Enabled = True

        lblEntidad.Visible = True
        lblEntidad.Text = "Producto"

        'cargar tipos


        obeRespuesta = obllinea.listarLinea("")

        If obeRespuesta.Respuesta Then
            lstlinea = CType(obeRespuesta.ValorRertono, List(Of LineaProductoBE))
            cmbLinea.AutoCompleteSource = AutoCompleteSource.ListItems
            cmbLinea.AutoCompleteMode = AutoCompleteMode.SuggestAppend
            sisFunciones.Load_Combo(cmbLinea, lstlinea, "NLIN_CODIGO", "CLIN_DESCRIPCION", True, -1)
        Else
            oMsg.showMsgWarning(obeRespuesta.Mensaje)
        End If
        ' cargamos estado

        ' cargar ubigeo

        sisFunciones.Carga_ComboFromEnum(cmbEstado, GetType(sisEnum.EstadoBD))

        ' cargamos  marca

        obeRespuesta = oblMarca.listarMarca("")

        If obeRespuesta.Respuesta Then
            lstMarcas = CType(obeRespuesta.ValorRertono, List(Of MarcaBE))
            cmbMarca.AutoCompleteSource = AutoCompleteSource.ListItems
            cmbMarca.AutoCompleteMode = AutoCompleteMode.SuggestAppend
            sisFunciones.Load_Combo(cmbMarca, lstMarcas, "NMAR_CODIGO", "CMAR_NOMBRE", True, 0)
        Else
            oMsg.showMsgWarning(obeRespuesta.Mensaje)
        End If


        ' cargamos unidades de venta

        obeRespuesta = oblUnidades.listarUnidades("")

        If obeRespuesta.Respuesta Then
            lstUnidades = CType(obeRespuesta.ValorRertono, List(Of UnidadesBE))
            cmbLinea.AutoCompleteSource = AutoCompleteSource.ListItems
            cmbLinea.AutoCompleteMode = AutoCompleteMode.SuggestAppend
            sisFunciones.Load_Combo(cmbUnidadVenta, lstUnidades, "NUNI_CODIGO", "CUNI_NOMBRE", False, 0)
        Else
            oMsg.showMsgWarning(obeRespuesta.Mensaje)
        End If

        asignarEventos(Me)

    End Sub

#End Region
    

   

#Region "Operaciones"
    Private Sub Listar()

        Dim oberespuesta As New RespuestaBE
        Dim olstEntidad As New List(Of PersonaBE)
        Dim oblEntidad As New ProductoBL
        Dim obeParametro As New PARAMETROBE
        obeParametro.PARAMETRO01 = txtEntidad.Text
        oberespuesta = oblEntidad.listarProducto(obeParametro)
        If oberespuesta.Respuesta Then


            FormatGrid()
            grdLista.DataSource = oberespuesta.ValorRertono
            grdLista.Refresh()
        Else
            oMsg.showMsgWarning(oberespuesta.Mensaje)
            MsgBox(oberespuesta.Mensaje)
        End If





    End Sub
   
    Private Function validarDetalle() As Boolean
        If ValidarDecimalVacio(TXTINT_BusCantidad.Text, lblBusCantidad.Text, True) = 0 Then
            TXTDEC_Precio.Focus()
            Return False
        End If
        Return True
    End Function

    Private Function validarDatosEntrada() As Boolean
        If ValidarComboVacio(CStr(cmbLinea.SelectedValue), lblLinea.Text, True, "-1") = 0 Then
            cmbLinea.Focus()
            Return False
        End If
        If ValidarComboVacio(CStr(cmbSubLinea.SelectedValue), lblSubLinea.Text, True, "-1") = 0 Then
            cmbSubLinea.Focus()
            Return False
        End If
        If ValidarStringVacio(txtDescripcion.Text, lblDescripcion.Text, True) = "" Then
            txtDescripcion.Focus()
            Return False
        End If
        If ValidarStringVacio(txtDescripcionCorta.Text, lblDescripcionCorta.Text, True) = "" Then
            txtDescripcionCorta.Focus()
            Return False
        End If
        If ValidarComboVacio(CStr(cmbMarca.SelectedValue), lblMarca.Text, True, "0") = 0 Then
            cmbMarca.Focus()
            Return False
        End If
        If ValidarStringVacio(txtCodigoBarra.Text, lblCodigoBarra.Text, True) = "" Then
            txtCodigoBarra.Focus()
            Return False
        End If
        If ValidarComboVacio(CStr(cmbUnidadVenta.SelectedValue), lblUnidadVenta.Text, True, "0") = 0 Then
            cmbUnidadVenta.Focus()
            Return False
        End If
        If ValidarDecimalVacio(TXTDEC_Precio.Text, lblPrecio.Text, True) = 0 Then
            TXTDEC_Precio.Focus()
            Return False
        End If
        If ValidarIntVacio(TXTINT_Stock.Text, lblStock.Text, True) = 0 Then
            TXTINT_Stock.Focus()
            Return False
        End If
        If ValidarStringVacio(txtNotas.Text, lblNotas.Text, True) = "" Then
            Return False
        End If

        If vlstProductoCompuesto.Count <= 0 Then
            objListaError.intNumError += 1
            objListaError.strCampoError = "Lista de productos"
            Return False

        End If


        Return True
    End Function
    Private Sub guadarInformacion()
        If Not validarDatosEntrada() Then
            showError()
            objListaError = New TError
            Return

        End If
        Dim obeEntidad As New ProductoBE
        With obeEntidad
            .NPRD_TIPO = 1
            obeEntidad.CAUDI_USR_INS = "u60546"
            obeEntidad.DAUDI_FEC_INS = Date.Now
            If Trim(TxtCodigo.Text) = "" Then
                obeEntidad.NPRD_CODIGO = 0
            Else
                obeEntidad.NPRD_CODIGO = CInt(TxtCodigo.Text)
            End If
            .NPRD_PRECIO = TXTDEC_Precio.Text
            .NPRD_STOCK = TXTINT_Stock.Text
            .CPRD_CODIGOBARRA = txtCodigoBarra.Text
            .NPRD_ESTADO = cmbEstado.SelectedValue

            .NMAR_CODIGO = cmbMarca.SelectedValue



            .CPRD_DESCRIPCION = txtDescripcion.Text
            .CPRD_DESCRIP_CORTA = txtDescripcionCorta.Text

            .COM_UNIDAD_VENTA = cmbUnidadVenta.SelectedValue
            .CPRD_FOTO = ""

            .CPRD_NOTAS = txtNotas.Text

            .NSLN_CODIGO = IIf(cmbSubLinea.SelectedValue = 0, Nothing, cmbSubLinea.SelectedValue)
            .DAUDI_FEC_INS = Date.Now
            .CAUDI_USR_INS = "u60546"
            If rbSimple.Checked = True Then

                .NPRD_TIPO = 1
            Else
                .NPRD_TIPO = 2

                .ListaProductos = vlstProductoCompuesto



            End If

        End With
        If (objListaError.intNumError > 0) Then
            showError()
            objListaError.intNumError = 0
        Else
            Dim oblEntidad As New ProductoBL
            Dim orespuesta As New RespuestaBE
            orespuesta = oblEntidad.GuardarProducto(obeEntidad)
            If orespuesta.Respuesta Then
                TxtCodigo.Text = orespuesta.Mensaje
                oMsg.showMsgInformation("msgExitoGuardar")
                Listar()
                tbcMantenimiento.SelectedIndex = 0
            Else
                oMsg.showMsgWarning("msgErrorGuardar")
            End If

        End If




    End Sub

    Private Sub EliminarEntidad(ByVal pCodigo As Integer)
        Dim oblEntidad As New ProductoBL
        Dim obeparametro As New PARAMETROBE
        Dim oberespuesta As New RespuestaBE
        obeparametro.PARAMETRO01 = pCodigo
        obeparametro.PARAMETRO02 = "U60546"
        oberespuesta = oblEntidad.EliminarProducto(obeparametro)
        If oberespuesta.Respuesta Then
            txtCodigo.Text = oberespuesta.Mensaje
            oMsg.showMsgInformation("msgExitoEliminar")
            Listar()
            tbcMantenimiento.SelectedIndex = 0
        Else
            oMsg.showMsgWarning("msgErrorEliminar")
        End If



    End Sub
    Private Sub LlenaDetalle(ByVal intTab As Integer)
        LimpiarControles()
        Dim intFila As Integer = -1
        If grdLista.RowCount = 0 Then
            Return
        End If
        intFila = grdLista.CurrentRow.Index
        If intFila <> -1 Then
            If grdLista.Rows(intFila).Selected Then
                '_strAccion = _Update
                If intTab >= 0 Then
                    tbcMantenimiento.SelectedIndex = intTab
                    txtCodigo.Text = grdLista.Rows(intFila).Cells(0).Value.ToString().Trim()
                    obtenerdatos(txtCodigo.Text)
                    tsbGuardar.Visible = True

                End If

            End If
        End If
    End Sub
    Private Sub obtenerdatos(ByVal codigo As String)
        If codigo <> "0" Then
            Dim oberespuesta As New RespuestaBE
            Dim oblEntidad As New ProductoBL
            Dim obeEntidad As New ProductoBE
            Dim obeProductoCompuesto As New List(Of ProductoCompuestoBE)
            oberespuesta = oblEntidad.listarProductoxCodigo(codigo)
            If oberespuesta.Respuesta Then
                obeEntidad = CType(oberespuesta.ValorRertono, ProductoBE)
                If obeEntidad.NPRD_TIPO = "1" Then
                    rbSimple.Checked = True
                    rbCompuesto.Checked = False
                    rbCompuesto.Enabled = False
                    'paSimple.Visible = True
                    'paCompuesto.Visible = False
                Else
                    rbSimple.Checked = False
                    rbCompuesto.Enabled = False
                    rbCompuesto.Checked = True
                    GrbDatosCompuesto.Visible = True
                End If
                With obeEntidad
                    TxtCodigo.Text = .NPRD_CODIGO
                    cmbMarca.SelectedValue = .NMAR_CODIGO



                    TXTINT_Stock.Text = .NPRD_STOCK
                    txtDescripcion.Text = .CPRD_DESCRIPCION
                    txtDescripcionCorta.Text = .CPRD_DESCRIP_CORTA
                    txtCodigoBarra.Text = .CPRD_CODIGOBARRA

                    cmbUnidadVenta.SelectedValue = .COM_UNIDAD_VENTA
                    '= .CPRD_FOTO
                    txtCodigoBarra.Text = .CPRD_CODIGOBARRA
                    cmbEstado.SelectedValue = CStr(.NPRD_ESTADO)

                    cmbLinea.SelectedValue = .NLIN_CODIGO
                    cmbLinea_SelectedIndexChanged(Nothing, Nothing)
                    cmbSubLinea.SelectedValue = .NSLN_CODIGO
                    txtNotas.Text = .CPRD_NOTAS
                    If .NPRD_TIPO = 2 Then ' producto compuesto ... traer detalle

                        oberespuesta = oblEntidad.listarSubProducto(codigo)
                        If oberespuesta.Respuesta Then
                            vlstProductoCompuesto = CType(oberespuesta.ValorRertono, List(Of ProductoCompuestoBE))

                            FormatGridProdCompuesto()
                            dgvLstProducto.DataSource = vlstProductoCompuesto
                            dgvLstProducto.Refresh()
                        End If
                        calcularTotales()
                    End If
                    TXTDEC_Precio.Text = .NPRD_PRECIO
                End With






            End If

        End If


    End Sub

    Private Sub LimpiarControles()
        TxtCodigo.Clear()
        cmbMarca.SelectedValue = 0


        TXTDEC_Precio.Clear()
        TXTINT_Stock.Clear()
        txtDescripcion.Clear()
        txtDescripcionCorta.Clear()

        cmbUnidadVenta.SelectedValue = 0
        '= .CPRD_FOTO
        txtCodigoBarra.Clear()


        cmbLinea.SelectedValue = 0
        cmbSubLinea.SelectedValue = 0
        rbSimple.Enabled = True
        rbCompuesto.Enabled = True
        rbSimple.Checked = True
        rbSimple_CheckedChanged(Nothing, Nothing)


    End Sub

#End Region

#Region "Accion Botones override"
    Protected Overrides Sub txtEntidad_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtEntidad.KeyPress
        If (e.KeyChar = Microsoft.VisualBasic.ChrW(13)) Then

            Listar()
        End If
    End Sub
    Protected Overrides Sub tsbSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Me.Close()
    End Sub
    Protected Overrides Sub tsbListar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Listar()

    End Sub
    Protected Overrides Sub tsbNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        LimpiarControles()
        tbcMantenimiento.SelectedIndex = 1
        tsbGuardar.Visible = True
        cmbEstado.SelectedValue = "1"

    End Sub
    Protected Overrides Sub tsbGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        If oMsg.showMsgQuestion("msgQuestionGuardar") = DialogResult.Yes Then
            guadarInformacion()
        End If



    End Sub
    Protected Overrides Sub grdLista_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        LlenaDetalle(0)


    End Sub
    Protected Overrides Sub tsbAbrir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub
    Protected Overrides Sub tsbEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        Dim intFila
        If grdLista.RowCount = 0 Then
            Return
        End If
        Try
            If grdLista.Rows(0).Cells(0).Value.ToString().Trim() Is Nothing Or _
                grdLista.Rows(0).Cells(0).Value.ToString().Trim() = "0" Then
                Return
            End If
        Catch ex As Exception
            Return
        End Try
        intFila = grdLista.CurrentRow.Index
        If intFila <> -1 Then
            If grdLista.Rows(intFila).Selected Then
                Dim codigo As Integer = CType(grdLista.Rows(intFila).Cells(0).Value.ToString().Trim(), Integer)

                If (oMsg.showMsgQuestion("msgQuestionDelete") = DialogResult.Yes) Then
                    EliminarEntidad(codigo)
                End If
            End If
        End If

    End Sub

#End Region
#Region "Accion Controles"
    Private Sub txtBusCodProducto_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtBusCodProducto.KeyDown
        If e.KeyValue = sisEnum.TeclasComunes.AbrirFormBusqueda Then
            Dim buscarProducto As New frmBusProducto()
            buscarProducto.ShowDialog()
            If (buscarProducto.DialogResult = Windows.Forms.DialogResult.OK) Then
                txtBusCodProducto.Text = Convert.ToString(buscarProducto.vRespuesta.PARAMETRO01)
                txtBusNomProducto.Text = Convert.ToString(buscarProducto.vRespuesta.PARAMETRO02)
                txtBusPrecio.Text = Convert.ToString(buscarProducto.vRespuesta.PARAMETRO03)
                lblBusUnidadMedida.Text = Convert.ToString(buscarProducto.vRespuesta.PARAMETRO04)

                vProductoCompuesto.NPCO_PRECIO = (Convert.ToDouble(txtBusPrecio.Text))
                vProductoCompuesto.COM_UNIDAD_VENTA = CInt(buscarProducto.vRespuesta.PARAMETRO05)

            End If

        End If
    End Sub

    Private Sub cmbLinea_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbLinea.SelectedIndexChanged
        If cmbLinea.SelectedIndex >= 0 And Not cmbLinea.SelectedValue Is Nothing Then
            Dim obeRespuesta As New RespuestaBE
            Dim lstSublinea As New List(Of SubLineaProductoBE)
            Dim oblLineaProducto As New LineaProductoBL
            Dim pcodigo As Integer = DirectCast(cmbLinea.SelectedItem, LineaProductoBE).NLIN_CODIGO
            obeRespuesta = oblLineaProducto.listarSubLinea(pcodigo)

            If obeRespuesta.Respuesta Then
                lstSublinea = CType(obeRespuesta.ValorRertono, List(Of SubLineaProductoBE))
                sisFunciones.Load_Combo(cmbSubLinea, lstSublinea, "NSLN_CODIGO", "CSLN_DESCRIPCION", False, -1)
            Else
                oMsg.showMsgWarning(obeRespuesta.Mensaje)

            End If
        Else
            cmbSubLinea.SelectedValue = 0
        End If

    End Sub

    Private Sub tbpDetalle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tbpDetalle.Click

    End Sub


    Private Sub rbSimple_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbSimple.CheckedChanged
        If rbSimple.Checked Then
            GrbDatosSimple.Visible = True
            GrbDatosCompuesto.Visible = False

        End If
    End Sub

    Private Sub rbCompuesto_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbCompuesto.CheckedChanged
        If rbCompuesto.Checked Then
            GrbDatosSimple.Visible = True
            GrbDatosCompuesto.Visible = True

        End If
    End Sub



    Private Sub buBuscarProducto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buBuscarProducto.Click
        Dim buscarProducto As New frmBusProducto()
        buscarProducto.ShowDialog()
        If (buscarProducto.DialogResult = Windows.Forms.DialogResult.OK) Then
            txtBusCodProducto.Text = Convert.ToString(buscarProducto.vRespuesta.PARAMETRO01)
            txtBusNomProducto.Text = Convert.ToString(buscarProducto.vRespuesta.PARAMETRO02)
            txtBusPrecio.Text = Convert.ToString(buscarProducto.vRespuesta.PARAMETRO03)
            lblBusUnidadMedida.Text = Convert.ToString(buscarProducto.vRespuesta.PARAMETRO04)
            lblBusCodUniVenta.Text = CInt(buscarProducto.vRespuesta.PARAMETRO05)
            vProductoCompuesto.NPCO_PRECIO = (Convert.ToDouble(txtBusPrecio.Text))
            vProductoCompuesto.COM_UNIDAD_VENTA = CInt(buscarProducto.vRespuesta.PARAMETRO05)
        End If
    End Sub

    Private Sub buAnadir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buAnadir.Click
        Dim vProductoAnadir As New ProductoCompuestoBE
        vProductoAnadir.NPRD_SUB_PRODUCTO = txtBusCodProducto.Text
        vProductoAnadir.COM_UNIDAD_VENTA = lblBusCodUniVenta.Text
        Dim iIndiceFila As Integer
        Dim pSisFunciones As New sisFunciones
        If Not validarDetalle() Then
            showError()
            objListaError = New TError
            Return
        End If
        iIndiceFila = pSisFunciones.IndiceObjetoEnLista("NPRD_SUB_PRODUCTO", vProductoAnadir, vlstProductoCompuesto)
        If iIndiceFila = -1 Then
           
            vProductoAnadir.DESSUBPRODUCTO = txtBusNomProducto.Text
            vProductoAnadir.NPCO_CANTIDAD = CInt(TXTINT_BusCantidad.Text)
            vProductoAnadir.NPCO_PRECIOUNITARIO = CDbl(txtBusPrecio.Text)

            vProductoAnadir.NPCO_PRECIO = vProductoAnadir.NPCO_CANTIDAD * vProductoAnadir.NPCO_PRECIOUNITARIO
            vProductoAnadir.UNIDADVENTA = lblBusUnidadMedida.Text
            vlstProductoCompuesto.Add(vProductoAnadir)


        Else
            vlstProductoCompuesto.Item(iIndiceFila).NPCO_PRECIO = CDbl(txtBusPrecio.Text)
            vlstProductoCompuesto.Item(iIndiceFila).NPCO_CANTIDAD = CInt(TXTINT_BusCantidad.Text)
            vlstProductoCompuesto.Item(iIndiceFila).UNIDADVENTA = lblBusUnidadMedida.Text

            vlstProductoCompuesto.Item(iIndiceFila).NPCO_PRECIO = vlstProductoCompuesto.Item(iIndiceFila).NPCO_CANTIDAD * vlstProductoCompuesto.Item(iIndiceFila).NPCO_PRECIOUNITARIO

        End If
        FormatGridProdCompuesto()
        dgvLstProducto.DataSource = vlstProductoCompuesto
        dgvLstProducto.Refresh()
        calcularTotales()
    End Sub
    Private Sub calcularTotales()
        Dim vPrecio As Double = 0
        For Each vprodcuto As ProductoCompuestoBE In vlstProductoCompuesto
            vPrecio = vPrecio + vprodcuto.NPCO_PRECIO

        Next
        txtBusPrecioTotal.Text = vPrecio
        TXTDEC_Precio.Text = vPrecio

    End Sub
    Private Sub buQuitar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buQuitar.Click

        Dim vValor As Integer
        Dim pSisFunciones As New sisFunciones
        Dim vProductosQuitar As New ProductoCompuestoBE
        '  vValor = dgvLstProducto.CurrentRow.Cells(0).ToString
        'iIndiceFila = pSisFunciones.IndiceObjetoEnLista("NPRD_SUB_PRODUCTO", vProductosQuitar, vlstProductoCompuesto)


        Dim intfila As Integer
        intfila = dgvLstProducto.CurrentRow.Index


        vValor = dgvLstProducto.Rows(intfila).Cells(0).Value.ToString().Trim()


        pSisFunciones.QUITAR_DE(Of ProductoCompuestoBE)(vlstProductoCompuesto, vValor, "NPRD_SUB_PRODUCTO")
        pSisFunciones.EnlazarGrilla(dgvLstProducto, vlstProductoCompuesto)
        calcularTotales()

    End Sub

    Private Sub dgvLstProducto_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dgvLstProducto.SelectionChanged
        If Not dgvLstProducto.CurrentRow Is Nothing Then
            Dim intfila As Integer
            intfila = dgvLstProducto.CurrentRow.Index
            If intfila <> -1 Then
                'If Not dgvLstProducto.Rows(intfila).Cells("NPRD_SUB_PRODUCTO").Value Is Nothing Then
                If dgvLstProducto.Rows(intfila).Selected Then

                    txtBusCodProducto.Text = dgvLstProducto.Rows(intfila).Cells("NPRD_SUB_PRODUCTO").Value.ToString().Trim() ' COD SUB PRODUCTO
                    txtBusNomProducto.Text = dgvLstProducto.Rows(intfila).Cells("DESSUBPRODUCTO").Value.ToString().Trim() ' DESCRIPCION
                    TXTINT_BusCantidad.Text = dgvLstProducto.Rows(intfila).Cells("NPCO_CANTIDAD").Value.ToString().Trim() ' CANTIDAD
                    lblBusUnidadMedida.Text = dgvLstProducto.Rows(intfila).Cells("UNIDADVENTA").Value.ToString().Trim()  ' UNIDAD VENTA
                    txtBusPrecio.Text = dgvLstProducto.Rows(intfila).Cells("NPCO_PRECIO").Value.ToString().Trim() ' PRECIO
                End If
            End If
        End If
    End Sub
#End Region

#Region "Grillas"
    Private Sub FormatGrid()

        grdLista.AutoGenerateColumns = False
        grdLista.Columns.Clear()
        grdLista.Columns.Add("NPRD_CODIGO", "Código")
        grdLista.Columns.Add("DESLINEA", "Linea")
        grdLista.Columns.Add("DESSUBLINEA", "Sub Linea")
        grdLista.Columns.Add("CPRD_DESCRIP_CORTA", "Producto")
        grdLista.Columns.Add("DESMARCA", "Marca")
        grdLista.Columns.Add("desUniVenta", "Unidad de Venta")
        grdLista.Columns.Add("NPRD_PRECIO", "Precio Unitario")
        grdLista.Columns.Add("NPRD_STOCK", "Stock")

        grdLista.Columns(0).DataPropertyName = "NPRD_CODIGO"
        grdLista.Columns(1).DataPropertyName = "DESLINEA"
        grdLista.Columns(2).DataPropertyName = "DESSUBLINEA"
        grdLista.Columns(3).DataPropertyName = "CPRD_DESCRIP_CORTA"
        grdLista.Columns(4).DataPropertyName = "DESMARCA"
        grdLista.Columns(5).DataPropertyName = "desUniVenta"
        grdLista.Columns(6).DataPropertyName = "NPRD_PRECIO"
        grdLista.Columns(7).DataPropertyName = "NPRD_STOCK"

        grdLista.Columns(0).Width = 60
        grdLista.Columns(1).Width = 120
        grdLista.Columns(2).Width = 120
        grdLista.Columns(3).Width = 160
        grdLista.Columns(4).Width = 120
        grdLista.Columns(5).Width = 120
        grdLista.Columns(6).Width = 160
        grdLista.Columns(7).Width = 160

        grdLista.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        grdLista.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

        grdLista.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        grdLista.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

        grdLista.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        grdLista.Columns(2).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

        grdLista.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        grdLista.Columns(3).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

        grdLista.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        grdLista.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

        grdLista.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        grdLista.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

        grdLista.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        grdLista.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

        grdLista.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        grdLista.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter


    End Sub
    Private Sub FormatGridProdCompuesto()

        dgvLstProducto.AutoGenerateColumns = False
        dgvLstProducto.Columns.Clear()
        dgvLstProducto.Columns.Add("NPRD_SUB_PRODUCTO", "Código")
        dgvLstProducto.Columns.Add("DESSUBPRODUCTO", "Producto")
        dgvLstProducto.Columns.Add("NPCO_CANTIDAD", "Cantidad")
        dgvLstProducto.Columns.Add("UNIDADVENTA", "Uni. Vta.")
        dgvLstProducto.Columns.Add("NPCO_PRECIOUNITARIO", "Precio Uni. (S/.)")
        dgvLstProducto.Columns.Add("NPCO_PRECIO", "Precio (S/.)")

        dgvLstProducto.Columns(0).DataPropertyName = "NPRD_SUB_PRODUCTO"
        dgvLstProducto.Columns(1).DataPropertyName = "DESSUBPRODUCTO"
        dgvLstProducto.Columns(2).DataPropertyName = "NPCO_CANTIDAD"
        dgvLstProducto.Columns(3).DataPropertyName = "UNIDADVENTA"
        dgvLstProducto.Columns(4).DataPropertyName = "NPCO_PRECIOUNITARIO"
        dgvLstProducto.Columns(5).DataPropertyName = "NPCO_PRECIO"





        dgvLstProducto.Columns(0).Width = 60
        dgvLstProducto.Columns(1).Width = 120
        dgvLstProducto.Columns(2).Width = 120
        dgvLstProducto.Columns(3).Width = 160
        dgvLstProducto.Columns(4).Width = 120
        dgvLstProducto.Columns(5).Width = 120



        dgvLstProducto.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        dgvLstProducto.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

        dgvLstProducto.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        dgvLstProducto.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

        dgvLstProducto.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        dgvLstProducto.Columns(2).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

        dgvLstProducto.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        dgvLstProducto.Columns(3).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

        dgvLstProducto.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        dgvLstProducto.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

        dgvLstProducto.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        dgvLstProducto.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

    End Sub
#End Region

End Class